import java.util.*;
import java.util.function.Consumer;

public class CollectionAPI {
    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("二哈");
        c.add("金毛");
        c.add("拉布拉多");
        c.add("中华田园犬");

/*        c.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });*/

        //之所以可以称为 Lambda 表达式遍历，
        // 是因为可以用 Lambda 表达式来遍历
        c.forEach( s -> System.out.println(s) );

        System.out.println("----------------------");
        //还可以继续简化
        c.forEach( System.out::println);
    }
}
/*    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("二哈");
        c.add("金毛");
        c.add("拉布拉多");
        c.add("中华田园犬");

        for (String s : c) {
            System.out.println(s);
        }
    }
}*/

/*    public static void main(String[] args) {
        Collection<String> c = new ArrayList<>();
        c.add("二哈");
        c.add("金毛");
        c.add("拉布拉多");
        c.add("中华田园犬");
        //使用迭代器（ Iterator ）进行遍历：
        //首先需要通过 iterator() 方法获取一个迭代器对象,
        Iterator iterator = c.iterator();
        //然后使用 while 循环和迭代器的 hasNext() 和 next() 方法进行遍历.
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}*/

/*    public static void main(String[] args) {
        //因为 Collection 是接口，故不能直接创建对象，
        // 那么需要利用它实现类 ArrayList 类,且支持泛型类
        Collection<String> collection = new ArrayList<>();

        // 1. Collection 中 add() 的实例方法，添加元素
        collection.add("二哈");
        collection.add("金毛");
        collection.add("拉布拉多");
        collection.add("中华田园犬");
        collection.add("二哈");
        System.out.println(collection);
        //输出结果为：[二哈, 金毛, 拉布拉多, 中华田园犬, 二哈]

        // 2. Collection 中 size() 的实例方法,获取集合的大小
        System.out.println(collection.size());
        //输出结果为：5

        // 3. Collection 中 contains() 的实例方法,
        // 判断是否包含某个元素，是则返回true ,不是则返回false
        System.out.println(collection.contains("二哈"));
        //输出结果为：true

        // 4. Collection 中 remove() 的实例方法
        // 删除某个元素，如果是该元素是重复的时候，删除的是第一个该元素
        collection.remove("二哈");
        System.out.println(collection);
        //输出的结果为：[金毛, 拉布拉多, 中华田园犬, 二哈]

        // 5. Collection 中 clear() 的实例方法,清空集合中的元素
        collection.clear();
        System.out.println(collection);
        //查看集合中的元素，输出结果为: []

        // 6. Collection 中 isEmpty() 的实例方法,
        // 判断集合元素是否为空，是空则放回true,不是空则返回false
        System.out.println(collection.isEmpty());
        //输出结果为：true

        // 7. Collection 中 toArray() 的实例方法,把集合转化为数组
        //先添加一些元素
        collection.add("二哈");
        collection.add("二哈");
        //调用 toArray() 的实例方式,类型是 String 类型，
        //虽然集合支持泛型，但是在运行的时候会被擦除，所以为了兼容，建议用所以用 Object[] 类型的数组来接收
        Object[] str = collection.toArray();
        System.out.println(Arrays.toString(str));
        //输出的结果为：[二哈, 二哈]

    }
}*/
